From 4c69569db71d149feff6c4b10ea7a493425d67fd Mon Sep 17 00:00:00 2001 From: Kevin Israel Date: Sun, 17 Mar 2013 21:09:02 -0400 Subject: [PATCH] Get rid of preg_replace( '/.../e', ... ) This is deprecated as of PHP 5.5, and the remaining uses are quite silly. Tim said I should remove his easter egg from Special:Version, as it already was broken, and a new one can be added in a separate commit. Change-Id: I0f09f4efc7afe5933c8317462026a475530a5324 --- includes/normal/UtfNormalTest.php | 8 +- includes/normal/UtfNormalUtil.php | 8 +- includes/specials/SpecialVersion.php | 108 +-------------------------- languages/classes/LanguageGan.php | 33 -------- languages/classes/LanguageZh.php | 8 +- 5 files changed, 10 insertions(+), 155 deletions(-) diff --git a/includes/normal/UtfNormalTest.php b/includes/normal/UtfNormalTest.php index 661e53fd7f..511836666e 100644 --- a/includes/normal/UtfNormalTest.php +++ b/includes/normal/UtfNormalTest.php @@ -34,9 +34,7 @@ $verbose = true; if( defined( 'PRETTY_UTF8' ) ) { function pretty( $string ) { - return preg_replace( '/([\x00-\xff])/e', - 'sprintf("%02X", ord("$1"))', - $string ); + return strtoupper( bin2hex( $string ) ); } } else { /** @@ -44,9 +42,7 @@ if( defined( 'PRETTY_UTF8' ) ) { * @return string */ function pretty( $string ) { - return trim( preg_replace( '/(.)/use', - 'sprintf("%04X ", utf8ToCodepoint("$1"))', - $string ) ); + return strtoupper( utf8ToHexSequence( $string ) ); } } diff --git a/includes/normal/UtfNormalUtil.php b/includes/normal/UtfNormalUtil.php index 9b96a0732a..e8fec93665 100644 --- a/includes/normal/UtfNormalUtil.php +++ b/includes/normal/UtfNormalUtil.php @@ -76,9 +76,11 @@ function hexSequenceToUtf8( $sequence ) { * @private */ function utf8ToHexSequence( $str ) { - return rtrim( preg_replace( '/(.)/uSe', - 'sprintf("%04x ", utf8ToCodepoint("$1"))', - $str ) ); + $buf = ''; + foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) { + $buf .= sprintf( '%04x ', utf8ToCodepoint( $cp ) ); + } + return rtrim( $buf ); } /** diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index 81d17817ca..8dd38d4eb8 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -69,9 +69,7 @@ class SpecialVersion extends SpecialPage { $out->addHTML( $this->IPInfo() ); if ( $this->getRequest()->getVal( 'easteregg' ) ) { - if ( $this->showEasterEgg() ) { - // TODO: put something interesting here - } + // TODO: put something interesting here } } else { // Credits sub page @@ -831,108 +829,4 @@ class SpecialVersion extends SpecialPage { return 'wiki'; } - function showEasterEgg() { - $rx = $rp = $xe = ''; - $alpha = array( "", "kbQW", "\$\n()" ); - $beta = implode( "', '", $alpha); - $juliet = 'echo $delta + strrev( $foxtrot ) - $alfa + $wgVersion . base64_decode( $bravo ) * $charlie'; - for ( $i = 1; $i <= 4; $i++ ) { - $rx .= '([^j]*)J'; - $rp .= "+(\\$i)"; - } - - $rx = "/$rx/Sei"; - $O = substr( "$alpha')", 1 ); - for ( $i = 1; $i <= strlen( $rx ) / 3; $i++ ) { - $rx[$i-1] = strtolower( $rx[$i-1] ); - } - $ry = ".*?(.((.)(.))).{1,3}(.)(.{1,$i})(\\4.\\3)(.).*"; - $ry = "/$ry/Sei"; - $O = substr( "$beta')", 1 ); - preg_match_all( '/(?<=\$)[[:alnum:]]*/', substr( $juliet, 0, $i<<1 ), $charlie ); - foreach( $charlie[0] as $bravo ) { - $$bravo =& $xe; - } - $xe = 'xe=<<0kssss?zk-0k10000:zk kbe zk=DDzk<<3&0kssssJ|Dzk>>13JJ^3658 kbe zk=pueDzk&0kssJ.pueDzk>>8JJ?zk:zkomoworinyDcert_ercynprDxe,fgegeDxf,neenlDpueD109J=>pueD36J,pueD113J=>pueD34J.pueD92J. 0 .pueD34JJJ,fgegeDxv,neenlDpueD13J=>snyfr,pueD10J=>snyfrJJJJwo'; - - $haystack = preg_replace( $ry, "$1$2$5$1_$7$89$i$5$6$8$O", $juliet ); - return preg_replace( $rx, $rp, $haystack ); - } } diff --git a/languages/classes/LanguageGan.php b/languages/classes/LanguageGan.php index 0d652d43de..3cc1f29786 100644 --- a/languages/classes/LanguageGan.php +++ b/languages/classes/LanguageGan.php @@ -105,28 +105,6 @@ class LanguageGan extends LanguageZh { $wgHooks['PageContentSaveComplete'][] = $this->mConverter; } - /** - * this should give much better diff info - * - * @param $text string - * @return string - */ - function segmentForDiff( $text ) { - return preg_replace( - "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", - "' ' .\"$1\"", $text ); - } - - /** - * @param $text string - * @return string - */ - function unsegmentForDiff( $text ) { - return preg_replace( - "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e", - "\"$1\"", $text ); - } - /** * word segmentation * @@ -139,15 +117,4 @@ class LanguageGan extends LanguageZh { return parent::normalizeForSearch( $string, $autoVariant ); } - /** - * @param $termsArray array - * @return array - */ - function convertForSearchResult( $termsArray ) { - $terms = implode( '|', $termsArray ); - $terms = self::convertDoubleWidth( $terms ); - $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) ); - $ret = array_unique( explode( '|', $terms ) ); - return $ret; - } } diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index 04767f2d95..ac386c5175 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -142,9 +142,7 @@ class LanguageZh extends LanguageZh_hans { * @return string */ function segmentForDiff( $text ) { - return preg_replace( - "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", - "' ' .\"$1\"", $text ); + return preg_replace( '/[\xc0-\xff][\x80-\xbf]*/', ' $0', $text ); } /** @@ -152,9 +150,7 @@ class LanguageZh extends LanguageZh_hans { * @return string */ function unsegmentForDiff( $text ) { - return preg_replace( - "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e", - "\"$1\"", $text ); + return preg_replace( '/ ([\xc0-\xff][\x80-\xbf]*)/', '$1', $text ); } /** -- 2.20.1